#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
简单功能测试脚本
测试核心功能是否正常工作
"""

import sys
import os

def test_imports():
    """测试导入"""
    print("🔍 测试模块导入...")
    
    try:
        from flask import Flask
        print("✅ Flask导入成功")
        
        import paddle
        print("✅ PaddlePaddle导入成功")
        
        from enhanced_fairy_tale_app import ERNIEFairyTaleApp, app
        print("✅ 主应用模块导入成功")
        
        return True
    except Exception as e:
        print(f"❌ 导入失败: {e}")
        return False

def test_app_creation():
    """测试应用创建"""
    print("🔧 测试应用创建...")
    
    try:
        from enhanced_fairy_tale_app import ERNIEFairyTaleApp
        
        # 创建应用实例
        fairy_app = ERNIEFairyTaleApp()
        print("✅ 应用实例创建成功")
        
        # 测试基础属性
        print(f"高级功能状态: {getattr(fairy_app, 'advanced_ready', False)}")
        print(f"故事模板数量: {len(getattr(fairy_app, 'story_templates', {}))}")
        
        return fairy_app
    except Exception as e:
        print(f"❌ 应用创建失败: {e}")
        return None

def test_story_generation(app_instance):
    """测试故事生成"""
    print("📖 测试故事生成...")
    
    try:
        story_result = app_instance.generate_story(
            name="小红",
            age="6-8岁",
            theme="勇敢与友谊", 
            interests="画画,唱歌"
        )
        
        print("✅ 故事生成成功")
        print(f"故事类型: {type(story_result)}")
        print(f"包含字段: {list(story_result.keys()) if isinstance(story_result, dict) else 'Not a dict'}")
        
        if isinstance(story_result, dict) and 'story' in story_result:
            story_preview = story_result['story'][:100] + "..." if len(story_result['story']) > 100 else story_result['story']
            print(f"故事预览: {story_preview}")
        
        return True
    except Exception as e:
        print(f"❌ 故事生成失败: {e}")
        return False

def test_flask_app():
    """测试Flask应用"""
    print("🌐 测试Flask应用...")
    
    try:
        from enhanced_fairy_tale_app import app
        
        with app.test_client() as client:
            # 测试主页
            response = client.get('/')
            print(f"主页响应状态: {response.status_code}")
            
            if response.status_code == 200:
                print("✅ Flask应用响应正常")
                return True
            else:
                print(f"❌ Flask应用响应异常: {response.status_code}")
                return False
                
    except Exception as e:
        print(f"❌ Flask测试失败: {e}")
        return False

def main():
    """主测试函数"""
    print("=" * 60)
    print("🧪 智慧童话世界 - 简单功能测试")
    print("=" * 60)
    
    # 测试导入
    if not test_imports():
        print("❌ 导入测试失败，退出")
        return
    
    # 测试应用创建
    app_instance = test_app_creation()
    if not app_instance:
        print("❌ 应用创建失败，退出")
        return
    
    # 测试故事生成
    if not test_story_generation(app_instance):
        print("❌ 故事生成测试失败")
    
    # 测试Flask应用
    if not test_flask_app():
        print("❌ Flask应用测试失败")
    
    print("\n" + "=" * 60)
    print("🎉 功能测试完成!")
    print("如果所有测试通过，可以启动完整应用")
    print("运行命令: python enhanced_fairy_tale_app.py")
    print("=" * 60)

if __name__ == "__main__":
    main()